#include <stdlib.h>
#include <stdio.h>
#include <math.h>

// Número de iterações = 10^5
#define M 100000

int main(int argc, char *argv[]){

	double S, E, r, sigma, T;
	double t, trials[M], max, sum = 0, mean, stddev, confwidth, confmin, confmax;
	int i;
	unsigned short xsubi[3];

	scanf(" %lf %lf %lf %lf %lf", &S, &E, &r, &sigma, &T);

	// Cálculo do valores do vetor "trials" segundo a equação de Black Scholes
	for(i = 0; i < M; i++){
																	// erand48 = geração de números aleatórios [0.0, 1.0)
		t = S * exp((r - (sigma * sigma) / 2.0) * T + sigma * sqrt(T) * erand48(xsubi));

		max = 0.0;
		if(t - E > 0.0)
			max = t - E;

		trials[i] = exp(-r * T) * max;

		// Soma dos valores para futuro cálculo da média
		sum += trials[i];
	}

	// Cálculo da média
	mean = sum / (double) M;
	sum = 0.0;

	// Somatório para futuro cálculo do desvio padrão
	for(i = 0; i < M; i++)
		sum += (trials[i] - mean) * (trials[i] - mean);

	// Desvio padrão
	stddev = sqrt(sum / ((double) M));

	// Intervalo de confiança
	confwidth = 1.96 * stddev / ((double) sqrt(M));
	confmin = mean - confwidth;
	confmax = mean + confwidth;

	printf("S\t\t%.0lf\nE\t\t%.0lf\nr\t\t%.0lf\nsigma\t%.0lf\nT\t\t%.0lf\nM\t\t%d\nConfidence interval: (%.6lf, %.6lf)", S, E, r, sigma, T, M, confmin, confmax);

	return 0;
}
